package com.ybkj.o2o.sales.service;

import com.ybkj.o2o.sales.entity.CouponRule;

import java.util.List;

public interface CouponRuleService {
  /**
   * 创建优惠券规则.
   * @param couponRule 优惠券规则内容
   * @return Long
   */
  Long insert(CouponRule couponRule);

  /**
   * 删除优惠券.
   * @param id 优惠券规则id
   */
  void delete(Long id, String appKey);

  /**
   * 修改.
   * @param couponRule 优惠券规则内容
   */
  int update(CouponRule couponRule);

  /**
   * 查询单个优惠券规则.
   * @param id 优惠券规则id
   * @param appKey 系统key
   * @return CouponRule
   */
  CouponRule findOne(Long id, String appKey);

  /**
   * 根据编码查询.
   * 
   * @param code 优惠券规则编码
   * @return CouponRule
   */
  public CouponRule findByCode(String code, String appKey);

  /**
   * 分页查询优惠券规则信息.
   * 
   * @param companyId 公司id
   * @param offset 页数
   * @param size 每页数量
   * @return List
   */
  List<CouponRule> selectByCompany(Long companyId, Integer offset, Integer size, String appKey);

  /**
   * 查询有效优惠券信息.
   * 
   * @param companyId 公司id
   * @param appKey 系统key
   * @return List
   */
  List<CouponRule> selectValid(Long companyId, String appKey);

  /**
   * 统计优惠券规则信息.
   * 
   * @param companyId 公司id
   * @return Long
   */
  Long countByCompany(Long companyId, String appKey);
}
